package com.blank.web.service;

import com.blank.web.bean.Page;
import com.blank.web.bean.Student;
import com.blank.web.dao.StudentDao;
import com.blank.web.factory.StudentDaoFactory;

import java.util.List;

public class StudentService {
    //合成复用原则
    private StudentDao studentDao;

    public StudentService(){
        this.studentDao = StudentDaoFactory.getStudentDao();
    }

    /**
     * 自定义成员方法实现显示所有学生信息
     */
    public List<Student> findAll(){
        return studentDao.findAll();
    }

    /**
     * 自定义成员方法实现添加学生信息功能
     */
    public void AddStudent(Student student){
         studentDao.AddStudent(student);
    }

    /**
     * 自定义成员方法根据sid来删除学生信息
     */
    public void Delete(int sid){
        studentDao.DelStudent(sid);
    }

    /**
     * 自定义成员方法实现根据sid来查找学生信息
     */
    public Student findStudentById(int sid){
        return studentDao.findStudentById(sid);
    }

    /**
     * 自定义成员方法实现更新学生信息的功能
     */
    public void Update(Student student){
        studentDao.UpdateStudent(student);
    }

    /**
     * 自定义成员方法实现查询功能
     */
    public List<Student> Search(String sname){
        return studentDao.Search(sname);
    }

    /**
     * 自定义成员方法实现分页功能
     */
    public Page findStudentByPage(int currentPage){
        int PageSize = StudentDao.PAGE_SIZE;
        Page<Student> page = new Page<Student>();
        page.setCurrentPage(currentPage);  //当前页码,也就是当前页是第几页
        page.setPageSize(PageSize);  //每一页显示的信息条数
        List<Student> list = studentDao.findStudentByPage(currentPage);
        page.setList(list);
        int count = studentDao.findCount();
        page.setTotalSize(count);  //总信息条数
        page.setTotalPage(count % PageSize == 0 ? count/PageSize : (count/PageSize)+1); //计算总页数

        return page;
    }
}
